The present invention relates to a data processor for processing data based on instructions and, more particularly, for processing a complex instruction to a data processor calling for a plurality of calculations to be executed.
An instruction for performing a plurality of calculations (hereinafter, referred to as a "complex instruction"), such as a VLIW instruction, realizes high speed processing in a data processor by increasing the number of calculations processed at the same time.
In order to increase the number of calculations carried out in one machine cycle, there has been a system where calculations are executed in parallel and the calculated results are produced at one time.
Further, when an exceptional processing, such as overflow or the like, appears during execution of calculations instructed by a complex instruction, all of the calculations instructed by the complex instruction have been re-executed by software similar to that used for the processing of a common single instruction.
In the processing described above, it is necessary to provide hardware to control the operation of a plurality of calculators in parallel and to store a plurality of calculated results at one time, which makes the processor complex. Further, the amount of hardware, such as parts to be used, is increased, which interferes with the ability to realize a compact and small-power-consuming data processor.
Furthermore, when an exception occurs, some calculations producing normal calculated results are also re-executed by the software. This makes the overhead of the processing upon occurrence of an exception large.